/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.aliyuncs.marketplaceintl.transform.v20220726;

import java.util.ArrayList;
import java.util.List;

import com.aliyuncs.marketplaceintl.model.v20220726.DescribeCountriesResponse;
import com.aliyuncs.marketplaceintl.model.v20220726.DescribeCountriesResponse.Data;
import com.aliyuncs.transform.UnmarshallerContext;


public class DescribeCountriesResponseUnmarshaller {

	public static DescribeCountriesResponse unmarshall(DescribeCountriesResponse describeCountriesResponse, UnmarshallerContext _ctx) {
		
		describeCountriesResponse.setRequestId(_ctx.stringValue("DescribeCountriesResponse.RequestId"));
		describeCountriesResponse.setErrorCode(_ctx.stringValue("DescribeCountriesResponse.ErrorCode"));
		describeCountriesResponse.setCode(_ctx.integerValue("DescribeCountriesResponse.Code"));
		describeCountriesResponse.setMsg(_ctx.stringValue("DescribeCountriesResponse.Msg"));
		describeCountriesResponse.setSuccess(_ctx.booleanValue("DescribeCountriesResponse.Success"));

		Data data = new Data();
		data.setRequestId(_ctx.stringValue("DescribeCountriesResponse.Data.RequestId"));
		data.setUid(_ctx.stringValue("DescribeCountriesResponse.Data.Uid"));
		data.setEncryptData(_ctx.stringValue("DescribeCountriesResponse.Data.EncryptData"));

		List<String> countries = new ArrayList<String>();
		for (int i = 0; i < _ctx.lengthValue("DescribeCountriesResponse.Data.Countries.Length"); i++) {
			countries.add(_ctx.stringValue("DescribeCountriesResponse.Data.Countries["+ i +"]"));
		}
		data.setCountries(countries);
		describeCountriesResponse.setData(data);
	 
	 	return describeCountriesResponse;
	}
}